/**
 * 国际化工具封装
 * @module I18n
 */
let globalI18n = null

/**
 * 设置全局i18n实例
 * @param {import('vue-i18n').I18n} i18n
 */
function setI18nInstance(i18n) {
  globalI18n = i18n
}

/**
 * 设置语言
 * @param {string} locale 语言代码
 */
function setLocale(locale) {
  if (globalI18n) {
    globalI18n.locale = locale
    uni.setLocale(locale)
  }
}

/**
 * 获取当前语言
 * @returns {string}
 */
function getLocale() {
  return globalI18n?.locale || 'zh-Hans'
}

/**
 * 翻译文本
 * @param {string} key 翻译键
 * @param {Object} [params] 参数
 * @returns {string}
 */
function t(key, params) {
  return globalI18n?.global.t(key, params) || key
}

export {
  setI18nInstance,
  setLocale,
  getLocale,
  t
}